﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

using Domain; //подключение Domain
using Session; //подключение Session
using Notif; //подключение Notif

namespace Log_Count
{
    public partial class FormLgCntUpd : Form
    {
        BrokerLgCnt b_LgCnt = new BrokerLgCnt(); // объявление BrokerLgCnt
        int idx; // объявление переменных для установки индекса
        public FormLgCntUpd()
        {
            InitializeComponent();
        }

        private void LgCnt_Upd_sBt_Ex_Click(object sender, EventArgs e) // закрытие формы
        { 
            FClose(); // вызов функции закрытия формы
        }

        private void FormLgCntUpd_FormClosed(object sender, FormClosedEventArgs e) // закрытие формы
        {
            FClose(); // вызов функции закрытия формы
        }

        private void LgCnt_Upd_sBt_Insr_Click(object sender, EventArgs e) // при нажатии кнопки "Сохранить"
        {
            try
            {
                Dm_Count NewCnt = new Dm_Count(); // объявление Dm_Count как NewCnt
                Dm_Count OldCnt = new Dm_Count(); // объявление Dm_Count как OldCnt
                Dm_Pers prs = new Dm_Pers(); // объявление Dm_Pers


                OldCnt.Id_count = Convert.ToInt32(label7.Text); // присвоение значений OldCnt.Id_count из label7.Text

                prs = LgCnt_Upd_cBE_Prs.SelectedItem as Dm_Pers; // присвоение prs значений из LgCnt_Upd_cBE_Prs

                NewCnt.Date_set = Convert.ToDateTime(LgCnt_Upd_dE_DtSt.Text); // присвоение значений NewCnt.Date_set из LgCnt_Upd_dE_DtSt.Text
                NewCnt.Date_ready = LgCnt_Upd_dE_DtRd.Text; // присвоение значений NewCnt.Date_ready из LgCnt_Upd_dE_DtRd.Text
                NewCnt.Delivery = LgCnt_Upd_tE_DtDlv.Text; // присвоение значений NewCnt.Delivery из LgCnt_Upd_tE_DtDlv.Text
                NewCnt.Failure = "no"; // присвоение значений NewCnt.Failure

                if (LgCnt_Upd_ckE_Falr.Checked == true)
                {
                    NewCnt.Failure = "yes"; // присвоение значений NewCnt.Failure
                    NewCnt.Note = LgCnt_Upd_tE_Nt.Text; // присвоение значений NewCnt.Note из LgCnt_Upd_tE_Nt.Text
                    NewCnt.Date_ready = "Отказ"; // присвоение значений NewCnt.Date_ready
                    NewCnt.Delivery = "Отказ"; // присвоение значений NewCnt.Delivery 
                }

                b_LgCnt.Update(OldCnt, NewCnt, prs); // вызов функции на редактирование записи

                MessNotif.Informing("Запись успешно отредактирована.", "Запись отредактирована"); // информирование о редактирование записи 

                FClose(); // вызов функции закрытия формы
            }

            catch (Exception ex) // если не добавилось
            {
                MessageBox.Show(ex.ToString());
            }
            
        }

        private void FormLgCntUpd_Load(object sender, EventArgs e) // заполнение ComboBox при открытие формы
        {
            LgCnt_Upd_cBE_Prs.Properties.Items.AddRange(b_LgCnt.FillComboBoxPers()); // заполнение FillComboBoxPers
        }

        private void FormLgCntUpd_Activated(object sender, EventArgs e) // установка индекса
        {
            
            int mg = Convert.ToInt32(LgCnt_Upd_cBE_Prs.Text); // объявление переменной и присвоение ей значения из LgCnt_Upd_cBE_Prs.Text

            for (int i = 0; i < LgCnt_Upd_cBE_Prs.Properties.Items.Count; ++i) //цикл на просмотр всех Item-ов
            {
                string s = LgCnt_Upd_cBE_Prs.Properties.Items[i].ToString(); // объявление переменной и присвоение ей значения Item-а
                if (s == b_LgCnt.idxPers(mg)) // вызов фенкции на "поиск по id" и сравниване полученных данных со значениями из Item-ов
                {
                    idx = i; // присваивание idx значения нужного индекса
                }
            }

            LgCnt_Upd_cBE_Prs.SelectedIndex = idx; // установка индекса
        }

        private void FClose() // функция закрытия
        {
            LgCnt_Upd_cBE_Prs.Properties.Items.Clear(); // отчистка LgCnt_Upd_cBE_Prs
            this.Hide();
        }
    }
}
